
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <iostream>
#include <fstream>
#include <sqlite3.h>

#include <new> /* std::bad_alloc */


using namespace std;


#ifndef __BANCO_H__
#define __BANCO_H__ 1

class banco {
private:
    sqlite3 *db;

    bool status;
    string msg_db;

public:

    /* template que armazena resultado da consulta */
    vector<vector<string> > resultados;
    int registros;
    int colunas;

    /* Construtor que conecta ao banco de dados */
    banco(const char*);
    
    /* Destrutor que encerra conexão com banco */
    ~banco();

    /* retorna status da conexão. Retorna false quando ocorre erro */
    bool getStatus(void);
    
    /* Método que retorna mensagem de erros */
    string getMsgDB(void);

    /* Método que inicializa transaction */
    void begin();
    
    /* Método que finaliza transaction */
    void commit();
    
    /* Método que cancela operação realizadas anteriormente */
    void rollback();
    
    /* Método que realiza diversas operações no banco de dados */
    bool query(const char*);
};


#endif